module.exports = {
  // 通过chainWebpack自定义打包入口
  chainWebpack: config => {
    // 发布模式
    config.when(process.env.NODE_ENV === 'production', config => {
      // clear()清除入口文件
      // 添加存在的入口文件main-prod.js
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js');
      // 使用externals设置排除项
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      });
      // 为html-webpack-plugin插件添加自定义属性isProd,发布模式下，isProd为true；开发模式下，isProd为false
      config.plugin('html').tap(args => {
        args[0].isProd = true;
        return args;
      });
    });
    // 开发模式
    // 添加存在的入口文件main-dev.js
    config.when(process.env.NODE_ENV === 'development', config => {
      config
        .entry('app')
        .clear()
        .add('./src/main-dev.js');
      // 为html-webpack-plugin插件添加自定义属性isProd,发布模式下，isProd为true；开发模式下，isProd为false
      config.plugin('html').tap(args => {
        args[0].isProd = false;
        return args;
      });
    });
  },
  devServer: {
    // 自定义端口号
    port: 9999,
    // 自动打开
    open: true
  }
};
